package leetcode;

/**
 * 有一个自行车手打算进行一场公路骑行，这条路线总共由 n + 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。
 * 给你一个长度为 n 的整数数组 gain ，其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差（0 <= i < n）。请你返回 最高点的海拔 。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/find-the-highest-altitude
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @author Europa
 */
public class Num1732 {

    public int largestAltitude(int[] gain) {
        // 起始海拔高度为0
        int start = 0;
        // 最高海拔高度
        int max = 0;
        for (int i : gain) {
            // 前一个 + 后一个 = 当前海拔高度
            start += i;
            // 比较最高与当前哪个大, 大的就是最高
            max = Math.max(start, max);
        }
        return max;
    }

    public static void main(String[] args) {
        Num1732 num1732 = new Num1732();
        int[] ints = {-5, 1, 5, 0, -7};
        int i = num1732.largestAltitude(ints);
        System.out.println(i);
    }
}
